package main

import "fmt"

type T struct {
	a int
}

func (t T) Get() int {
	return t.a
}

func (t *T) Set(a int) int {
	t.a = a
	return t.a
}

func main() {
	var t T
	f1 := (*T).Set
	f2 := T.Get
	fmt.Printf("the type of f1 is %T\n", f1)
	fmt.Printf("the type of f2 is %T\n", f2)

	f1(&t, 3)
	fmt.Println(f2(t))
}
